package com.wyc.example.service;

import com.wyc.example.dao.UserDao;
import com.wyc.example.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Optional;

/**
 * @author 王韫琛
 * @version 1.0
 * @date 2021/5/23 8:47
 */
@Service
public class UserService {
    @Resource
    private UserDao userDao;
    /**
     * @Author 王韫琛
     * @Description //新增和修改的方法
     * @Date 9:13 2021/5/23
     * @Param [user]
     * @return void
     **/
    public void save(User user){
        String now = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        user.setCreateTime(now);
        userDao.save(user);
    }
    /**
     * @Author 王韫琛
     * @Description //TODO 删除方法
     * @Date 9:13 2021/5/23
     * @Param [id]
     * @return void
     **/
    public void del(Long id){
        userDao.deleteById(id);
    }
    /**
     * @Author 王韫琛
     * @Description //TODO 根据id查询用户
     * @Date 9:14 2021/5/23
     * @Param [id]
     * @return com.wyc.example.entity.User
     **/
    public User findById(Long id){
        //查询结果如果是空的话就返回null，如果不是空的话就返回结果。
        return userDao.findById(id).orElse(null);
    }
    /**
     * @Author 王韫琛
     * @Description //TODO 分页查询
     * @Date 9:17 2021/5/23
     * @Param [pageNum, pageSize, name]
     * @return org.springframework.data.domain.Page<com.wyc.example.entity.User>
     **/
    public Page<User> findPage(Integer pageNum,Integer pageSize,String name){
        //构建分页查询的条件
        //倒叙查询
        Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
        Pageable request = PageRequest.of(pageNum-1,pageSize,sort);
        return userDao.findNameLike(name,request);
    }
}
